# 1. 什么是算法
解决特定问题的步骤就是算法
# 2. 算法的5个特性
输入、输出、有穷性、确定性、可行性
# 3. 算法的评价
分为时间复杂度(消耗的时间)、空间复杂度(消耗的空间)
# 4. 时间复杂度
用 T(n) 来表示时间复杂度,代表算法执行所以消耗的时间。
一般有3种情况:Tmax 、Tmin 、Tavg ,如果没有特别提及,一般看作Tmax
一般 T(n) 算出来是比较复杂的,所以引入 O(n) 大O表达式
常见的时间复杂度量级及对应常见形式:
- 常数阶O(1):普通语句(非循环等复杂结构)
- 线性阶O(n):循环语句
- 平方阶O(n²):双层循环语句
- 对数阶O(logN):while循环
- 线性对数阶O(nlogN):for循环内嵌套while循环
# 5. 空间复杂度
用 S(n) 来表示时间复杂度。
一般 S(n) 算出来是比较复杂的,所以引入 O(n) 大O表达式
# 6. 大O表达式
如果存在一个 n0 和 C,使得当 n > n0 时,f(n) <= cg(n),那么就称 g(n) 是 f(n) 的上界,记作 f(n)= O(g(n))
按定义我们不难得到 2n3+n2+1024 = O(n3) = O(n4) = O(n5) = ...